from flask import session
from flask_script import Manager
from info import create_app, db
from flask_migrate import Migrate, MigrateCommand
from info import models  # 只需要导入不使用
from info.models import User

app = create_app('development')

manage = Manager(app)
Migrate(app, db)
manage.add_command('db', MigrateCommand)

# 在终端使用命令：python manage.py create_supperuser -n admin -p 123456
@manage.option('-n','-name',dest='name')
@manage.option('-p','-password',dest='password')
def create_supperuser(name,password):
    if not all([name,password]):
        print('参数缺失')
    user = User()
    user.nick_name = name
    user.mobile = name
    user.password = password
    user.is_admin = True
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        print(e)
    print('管理员创建成功')

if __name__ == '__main__':
    print(app.url_map)
    manage.run()
'''
启动文件：
        创建app
        命令行
        数据库迁移

因为生产模式不定,因此返回的app只是配置了基础信息,要添加命令行，而数据库迁移又要使用命令行来配置，
因此 命令行配置 和数据库迁移没有放到config文件中，否则返回的会是一个固定模式的app（后续验证可行性）

数据库表模型在此调用 --数据库迁移--建库

'''
